#pragma once

#include <memory>

#include "../Math/TransferFunction/TransferFunctionBase.h"
#include "Network.h"
#include "../Neuron/Neuron.h"

class CRossenblatt : public CNetworkBase
{
private:
	friend class LMS;

public:
	CRossenblatt() = delete;

	CRossenblatt(int InputDataCount, shared_ptr<ITransferFunctionBase> transferFunction);

public:
	virtual bool Save(const char * szFileName = nullptr);

	virtual bool Load(const char * szFileName = nullptr);

	virtual Vector Execute(Vector InputData);
	
private:
	int m_InputDataDimesion;

	CNeuron m_Neuron;
};